package com.tlvip.arithmetic.ch08;

import java.util.Arrays;

/**
 * <p>description：选择排序</p>
 * <p>copyright： copyright(C)2016-2099</p>
 * <p>Life is short,we need passion</p>
 * <p>Summary： </p>
 * <p>instructions： </p>
 * Date 1/27/21</p>
 * Author mac
 *
 * @version 1.0
 */
public class SelectSort {
    public static void main(String[] args) {
        selectSort();
    }

    // 时间复杂度O(n^2)
    // 空间复杂度O(n)
    // 不稳定的排序，比如5,6,5,7,0，第一次排序前面一个5和0会比较交换，
    public static void selectSort() {
        int data[] = {10, 5, 6, 4, 1, 2, 3};
        // i:0-5
        for (int i = 0; i < data.length; i++) {
            // 保留最小数字下标
            int loc = i;
            // j:1-5
            for (int j = i + 1; j < data.length; j++) {
                if (data[loc] > data[j]) {
                    loc = j;
                }
            }
            if (data[i] > data[loc]) {
                // 将最小的数字放到前面，比较并交换位置
                int temp = data[i];
                data[i] = data[loc];
                data[loc] = temp;
            }
        }
        System.out.println(Arrays.toString(data));
    }
}
